This invention relates to a control device, preferably used to input information into a computer and the like, that has enhanced control aspects, and a method for programming that controller. The control device combines a movable pod, that is sized to comfortably support a user""s hand, with control buttons that are easily commanded by the user""s fingers and thumb without interfering with pod movement, thereby allowing the user to quickly, simultaneously, and intuitively, command several different aspects of a user application software, such as a game.
In particular, the pod is movable simultaneously in three different directions: forward-and-backward, side-to-side; and axially about an axis. The device also uses the distance the pod is displaced from a neutral position as an additional control parameter for commanding the application software. In addition, control commands associated with the control buttons and movement of the pod may be programmed by the user either xe2x80x9con the flyxe2x80x9d or by using a graphical user interface. Also, the device provides feedback to the user regarding the programmed status of each button and available pod movement.
Control devices such as mice and joysticks are widely known and used, particularly in computer applications. They allow users to quickly command the application software without the need to key-in information through a keyboard. For example, a mouse permits its user to quickly position a computer""s cursor at a desired location on the computer screen simply by moving the mouse around a flat surface. Moreover, the hand movements required to move a computer mouse are easy to learn, intuitive, and can be done over extended periods of time with minimal fatigue. Similarly, tilting-type joysticks, including both base and hand supported models, are frequently used to command computer application software such as video games. Joysticks permit a user to command various aspects of the computer program or game, such as commanded speed, direction, or view, by physically tilting the joystick lever about its tilt axis.
These types of control devices typically include one or more buttons that may be depressed by the user to send additional command information to the computer. For example, double depressing or xe2x80x9cclickingxe2x80x9d the left button on a mouse typically sends a command to the application software to execute a cursor-highlighted function.
Despite the benefits associated with typical mouse and joystick control devices and their control buttons, they have several limitations that compromise their desirability in certain types of applications. For example, gaming software has evolved into providing a player with highly sophisticated three-dimensional gaming environments, featuring numerous independently operable players, characters, weapons, tools, views, situations, and the like, all of which may be moved and controlled, often simultaneously by commands entered by the user. The typical method for entering these commands includes using a keyboard and mouse or joystick, which often is time consuming, and distracts the user from playing the game.
In particular, using a mouse and keyboard to play these games, the user types in commands on the keyboard and manipulates the mouse or joystick to view the gaming area. For example, most real time strategy games allow xe2x80x9ccameraxe2x80x9d movement within their game worlds. One such game is xe2x80x9cPOPULOUS: THE BEGINNING,xe2x80x9d a real-time strategy game published by The Electronic Arts Company, which provides four degrees of freedom of its xe2x80x9ccameraxe2x80x9d view. In particular, this game allows users to move the xe2x80x9ccameraxe2x80x9d view up, down, left, right, rotate right, rotate left, zoom in, and zoom out. Camera movement is accomplished either through moving the mouse to the edges of the screen or by pressing keyboard keys.
However, using either a mouse or keyboard to change the camera view interferes with the users"" gaming experience. While executing camera movement using the mouse, the user cannot direct game action with the mouse. Namely, the user has difficulty changing the view of the game through the camera controls while still manipulating the context of the game. While executing camera movement using the keyboard, the user cannot direct game actions with keyboard shortcuts, and instead must use slower mouse movement.
Moreover, it is difficult to achieve smooth camera control in such games using a keyboard. For example, in xe2x80x9cPOPULOUS: THE BEGINNING,xe2x80x9d camera control is obtained by the user actuating the following keyboard keys during the game:
In order for a user to obtain the desired xe2x80x9ccameraxe2x80x9d view, they must essentially stop playing the game and enter the desired combination of keyboard keys. This compromises the user""s gaming experience.
Moreover, many games require the user to perform selected keyboard entry tasks repeatedly, either throughout the game, or at the beginning of each new game.
For example, in order to place a user in a desirable configuration at the start of the real-time strategy game published by Microsoft Corporation under the trademark xe2x80x9cAGE OF EMPIRES,xe2x80x9d and more specifically xe2x80x9cAGE OF EMPIRES II THE AGE OF KINGS,xe2x80x9d it is desirable for the user to enter the following sequence of commands:
This sequence of commands must typically be repeated every time a new game is started. Accordingly, a user is forced to repeat this sequence with each new game, distracting and delaying the user from playing the game. Similarly, other routine series of commands must be repeatedly keyed-in while playing the game, further distracting and interfering with the user""s gaming experience.
The keystroke repetition and time delay associated with using a typical keyboard and mouse or joystick controller is caused primarily by the following two limitations with these types of controllers: First, the control buttons of typical mouse and joystick controllers provide only limited commands. And second, the overall amount of command information that can be collected and transmitted by physical manipulation or movement of these typical controllers is limited.
A primary limitation with typical mouse and joystick controllers is that the x and y coordinate information they collect by manipulation of the mouse or joystick is limited to providing only corresponding x and y pointing command information to the application software. For example, if a traditional mouse is moved from one point to another, the total distance the mouse is displaced between the two points is not used as a control command by the user application software. Similarly, while the rotation of some traditional joysticks may send corresponding movement information to the application software, usually as rotational direction control, the physical distance the joystick is deflected from its neutral position triggers no additional control commands.
Control designers have attempted to address the problem of limited control information associated with physical movement of typical control devices by increasing the degrees of freedom of movement of the controllers. For example, see U.S. Pat. No. 5,880,714 to Rosenberg et al (xe2x80x9cRosenberg et al.). and U.S. Pat. No. 5,854,622 to Brannon (xe2x80x9cBrannonxe2x80x9d). However, these devices require their users to manipulate complex articulated three dimensional linkages (Rosenberg et al.) or move a lever secured by multiple rods about a three dimensional space (Brannon). They do not use information already collected by the controllers, such as basic x and y coordinates, to add an additional control parameter. Accordingly, these devices are complex, expensive to manufacture and service, fatiguing and counter-intuitive to use.
Moreover, it is desirable for movable controllers to be biased to a neutral position and for the forces acting on the controller to return it to its neutral position to be relatively small, be felt by a user holding the controller as being directed towards the controller""s neutral position, and be roughly proportional to the distance the controller is displaced from its neutral position in all directions. In such incidences, the amount and direction of return force felt by the user serves to indicate the direction and the amount of deflection of the controller, thereby improving the controller""s xe2x80x9cfeelxe2x80x9d and accuracy, and providing an additional level of control.
The typical mouse is not biased to a neutral position. Also, known devices for returning conventional joysticks to a neutral position compromise the smooth operation of the controller throughout its range of motion. In particular, the forces acting on the controller to return it to its neutral position are applied unevenly throughout the range of motion of the joystick, and they are not proportional to the distance the controller is displaced from its neutral position.
The control buttons on typical mice and joysticks offer only limited command instructions. They cannot be easily programmed by the user to perform any or all commands for a given software application. Similarly, these control buttons only send information to the application software, they do not typically receive feedback from the application software. Accordingly, the user of that button has no way of knowing if the button has been programmed correctly for a particular application until after the button is pressed and its preprogrammed command has been activated. Testing control buttons in this manner can adversely affect the outcome of a game.
Thus, despite the benefits of known controllers, there remains a need for a controller that is movable in several directions, and provides easily accessible control buttons that may be commanded by the user without interfering with movement of the controller or requiring extensive training to learn how to use. There also remains a need for a user to be able to quickly and easily program the control buttons and pod movement with control commands, and for the programmed status of those control buttons and pod movement to be easily verified by the user.
In addition to other benefits that will become apparent in the following disclosure, the present invention fulfills these needs.
The present invention is a control device having a movable pod, that is sized to comfortably support a user""s hand, with control buttons that are easily commanded by the user""s fingers and thumb without interfering with pod movement, thereby allowing the user to quickly, simultaneously, and intuitively, command several different aspects of a user application software, such as a game.
The pod is movable simultaneously in three different directions along a plane: forward-and-backward, side-to-side; and axially about an axis. Preferably, it is sized to support a user""s hand, and has a smoothly contoured surface with a palm engaging portion, a thumb-engaging portion, and a finger-engaging portion. Some of the control buttons are positioned on the finger-engaging portion such that they may be activated without the user lifting his or her hand from the pod. Other control buttons are positioned on the thumb-engaging portion and may be activated by the user""s thumb without the user lifting his or her hand from the pod. As a result, a user can manipulate the control buttons while moving the pod throughout its entire range of motion, thereby providing simultaneous control commands to the application software.
Each direction of movement may be programmed by the user to activate different control commands. Similarly, combinations of these movements, such as movement in a direction that is diagonal to the forward-to-backward and side-to-side movements of the pod can be programmed with control commands. Alternatively, such commands may be imbedded in the user application software.
The control device can also use the distance the pod is displaced from a neutral position as an additional control parameter for commanding the application software. For example, the direction the pod is moved from a reference point may be used to provide traditional x and y coordinates for transmitting a direction of movement to pointer command to the application software. However, the total distance the pod is moved from the reference point may be used to determine how fast the commanded direction of movement will take place.
The control buttons are preferably programmable. The programmable buttons and pod movement commands may be programmed xe2x80x9con the fly,xe2x80x9d meaning the system has a programming mode that, when activated, remembers a series of commands as they are entered and stores those commands to be activated again in the future simply by pressing the control button, or moving the pod in the commanded direction. Each button may also be programmed through an improved user interface that includes preferred commands for a collection of popular software applications, and identifies the actual commands associated with each programmed function.
The control device provides feedback to the user regarding the programmed status of each button and available pod movements. In particular, each programmable button has a lightable collar that is illuminated when the associated button is programmed, and flashes when that button is in programming mode, serving as an indicator to the user of the programmed status of each button. The graphical user interface displays the programmed commands associated with each programmable control button and the available pod movements.
Preferably, the commands associated with pod movement, are logically associated with related user application software commands, such that movement of the pod is intuitive of the programmed command. For example, pod movement can be programmed to control the xe2x80x9ccameraxe2x80x9d view of a user application software game, such that movement of the pod in a particular direction, commands the xe2x80x9ccameraxe2x80x9d view to move in that direction. Similarly, one of the finger-engaging portion mounted control buttons may serve as a xe2x80x9czoomxe2x80x9d button, which can be programmed to command the xe2x80x9ccameraxe2x80x9d view to zoom in or out based on the selected position of the button. In addition, routine and regular gaming commands may be grouped together for actuation in a single or logically related group of programmable control buttons, allowing quick access and smooth operation through the game.
Such programming allows the user to quickly and simultaneously enter map or camera movement commands by moving the pod and related game commands by pressing the readily accessible programmed control buttons while keeping the mouse and keyboard free to enter other commands. As a result, games may be played more easily and quickly, because the need for the user to stop and key-in redundant information is reduced. Moreover, in some applications, the need for a user to enter any information through a mouse or keyboard is eliminated.